import wepy from 'wepy'
export default class extends wepy.mixin {
    data = {
        // 查询关键词
        query: '',
        // 商品分类ID
        cid: '',
        // 页数索引
        pagenum: '',
        // 每页长度
        pagesize: '',
        goodslist: [],
        total: 0,
        isover: true,
        // 表示当前数据是否正在请求中
        isloading: false
    }
    onLoad(options) {
        console.log(options)
        this.query = options.query || ''
        this.cid = options.cid || ''
        // 调用获取商品列表的方法
        this.getGoodList()
    }
    // 上拉触底事件
    onReachBottom() {
        // 判断当前是否正在请求数据中，
        // 如果 isloading 值为 true，则 return 从而终止后续操作，防止重复发起数据请求
        if (this.isloading) {
            return
        }
        if (this.pagenum * this.pagesize >= this.total) {
            this.isover = false
            return
        }
        this.pagenum++
        this.getGoodList()
    }
    // 下拉刷新
    onPullDownRefresh() {
        this.pagenum = 1
        this.total = 0
        this.goodslist = []
        this.isover = true
        this.isloading = false
        // 重新发起数据请求
        this.getGoodList(() => {
            // 停止下拉刷新的行为
            wepy.stopPullDownRefresh()
        })
    }
    // 获取商品列表的方法
    async  getGoodList() {
        // 即将发起请求时，将 isloading 重置为 true
        this.isloading = true
        const { data: res } = await wepy.get('/goods/search', {
            query: this.query,
            cid: this.cid,
            pagenum: this.pagenum,
            pagesize: this.pagesize
        })
        if (res.meta.status !== 200) {
            return wepy.baseToast()
        }
        console.log(res)
        this.goodslist = [...this.goodslist, ...res.message.goods]
        this.total = res.message.total
        // 当数据请求完成后，将 isloading 重置为 false
        this.isloading = false
        this.$apply()
    }
    methods = {
        goGoodsDetail(goods_id) {
            wepy.navigateTo({ url: '/pages/goods_detail/main?goods_id=' + goods_id });
        }
    }
}